﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace DiveManager
{
    public partial class Storage_Location_New : Form
    {
        protected DiveDatabaseEntities diveDatabase;
        
        public int bereich;
        public int reihe;
        public int fach;
        public int fachnummer;
        public int freigabe=1;
        public int vergl_fach;
        public int anlegen=1;
        
        public Storage_Location_New()
        {
            InitializeComponent();

            // Init Database
            diveDatabase = new DiveDatabaseEntities();
        }

        private void btOpen_Click(object sender, EventArgs e)
        {
            //Lagerfach für die Benutzung freigeben
            freigabe = 1;
            btClose.Visible = true;
            btOpen.Visible = false;
        }

        private void btClose_Click(object sender, EventArgs e)
        {
            //Lagerfach für die Benutzung sperren
            freigabe = 0;
            btClose.Visible = false;
            btOpen.Visible = true;
        }

        private void btAdd_Click(object sender, EventArgs e)
        {
            anlegen = 1;
            
            //Auslesen der Daten
            if(txArea.Text.Equals(""))
            {
                MessageBox.Show("Unvollständige Eingabe!");
            }
            else
            {
                if(txWide.Text.Equals(""))
                {
                    MessageBox.Show("Unvollständige Eingabe!");
                }
                else
                {
                    if(txHigh.Text.Equals(""))
                    {
                        MessageBox.Show("Unvollständige Eingabe!");
                    }
                    else
                    {
                        
                        bereich = Convert.ToInt32(txArea.Text);
                        reihe = Convert.ToInt32(txWide.Text);
                        fach = Convert.ToInt32(txHigh.Text);

                        txFachnummer.Text = bereich.ToString() + reihe.ToString() + fach.ToString();
                        txFach.Text = bereich.ToString() + "-" + reihe.ToString() + "-" + fach.ToString();

                        fachnummer = Convert.ToInt32(txFachnummer.Text);

                        var query_redundant = from ssl in diveDatabase.Storage_StorageLocations
                                              select ssl;

                        foreach (var ssl in query_redundant)
                        {
                            vergl_fach = Convert.ToInt32(ssl.PlatzNr);
                            
                            if (fachnummer == vergl_fach)
                            {
                                anlegen = 0;
                            }
                            else
                            {
                                
                            }
                        }

                        if (anlegen == 1)
                        {
                            //Lagerplatz anlegen
                            //In die Tabelle Product_Main schreiben
                            // Generate new Object for DB
                            Storage_StorageLocations newlocation = new Storage_StorageLocations();
                            newlocation.ID = System.Guid.NewGuid();
                            newlocation.Etage = fach;
                            newlocation.Bereich = bereich;
                            newlocation.Reihe = reihe;
                            newlocation.PlatzNr = fachnummer;
                            newlocation.Closed = freigabe;
                            // Add to DB
                            diveDatabase.AddToStorage_StorageLocations(newlocation);
                            diveDatabase.SaveChanges();


                            MessageBox.Show("Lagerplatz erstellt!");
                            txArea.Clear();
                            txHigh.Clear();
                            txWide.Clear();
                        }
                        else
                        {
                            MessageBox.Show("Fach existiert bereits!");
                        }
            
                    }
                }
            }

            

           
        }

        private void btCancel_Click(object sender, EventArgs e)
        {
            //Abbrechen
            this.Close();
        }

        private void txArea_TextChanged(object sender, EventArgs e)
        {
           
            
        }

        private void txWide_TextChanged(object sender, EventArgs e)
        {
           }

        private void txHigh_TextChanged(object sender, EventArgs e)
        {
             }

        private void Storage_Location_New_Load(object sender, EventArgs e)
        {

        }
    }
}
